#ifndef INK_FRAMEWORK_H_INCLUDED
#define INK_FRAMEWORK_H_INCLUDED

#include "ink_foundation.h"

namespace ink
{
class module_i;
class module_mgr;
class module_creator;

class framework {
public:
    static framework& instance();

    module_i* create_module(const std::string& module_name);

    void register_module(const std::string& name, module_creator* creator );
private:
    framework();

    module_mgr* module_mgr_;
};

} // namespacce ink

#endif // INK_FRAMEWORK_H_INCLUDED